{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Decision Tree Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adapted from http://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html\n",
    "\n",
    "A 1D regression with decision tree.\n",
    "\n",
    "The decision trees is used to fit a sine curve with addition noisy observation. As a result, it learns local linear regressions approximating the sine curve.\n",
    "\n",
    "We can see that if the maximum depth of the tree (controlled by the max_depth parameter) is set too high, the decision trees learn too fine details of the training data and learn from the noise, i.e. they overfit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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9aMf/UiDBg2yeziOs23bNo0aNUpnzpxRhw4d9MYbb+jSSy+1e1iO8+qrr2rr1q3atGmT3UNxtJEjR2rx4sXq37+/SkpKNG/ePGVmZmr79u1KSkqydWyEHAB1TJ8+Xdu3b4+avrrT9O/fX0VFRSorK9PSpUs1depUrVu3jqBjof379ysnJ0erV69Wu3bt7B6Oo914443+rwcPHqyRI0eqd+/eev31121vwRJyWuCiiy5SfHy8Dh8+XOv6w4cPq3v37jaNCmiZGTNm6M0339R7770nl8tl93AcKSEhQf369ZMkDRs2TJs2bVJ+fr6ef/55m0fmHFu2bNGRI0d0+eWX+69zu91677339PTTT6uyslLx8fE2jtC5OnfurO9973vavXu33UNhTk5LJCQkaNiwYVqzZo3/Oo/HozVr1tBfR6vj9Xo1Y8YMvfHGG3r33Xd18cUX2z2kmOHxeFRZWWn3MBzlmmuu0bZt21RUVOS/DB8+XHfeeaeKiooIOGF0+vRp7d69W2lpaXYPhUpOS82aNUtTp07V8OHDNWLECOXl5amiokJ333233UNzFN9/Gp+9e/eqqKhIycnJ6tWrl40jc47p06frlVde0YoVK5SUlKRDhw5Jkjp16qT27dvbPDrnePjhh3XjjTeqV69eOnXqlF555RUVFhbq7bfftntojpKUlFRnPtmFF16olJQU5plZ7IEHHtC4cePUu3dvHTx4UI8++qjatGmjKVOm2D00Qk5LTZ48WUePHtWcOXN06NAhDR06VKtWraozGRkts3nzZmVlZfm/nzVrliRp6tSpWrx4sU2jcpbnnntOkjRmzJha17/wwguaNm1a5AfkUEeOHNFdd92lkpISderUSYMHD9bbb7+t6667zu6hAc1y4MABTZkyRaWlpUpNTdXo0aO1YcMGpaam2j001skBAADOxJwcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAK3CmDFjlJuba/cwALQihBwAjlNYWCjDMHTy5Em7hwLARoQcAADgSIQcAFGnoqJCd911lzp06KC0tDT9/ve/r/Xzv/3tbxo+fLiSkpLUvXt33XHHHTpy5Igk6euvv/bvc9alSxcZhuHfe2vVqlUaPXq0OnfurJSUFN1888366quvIvraAEQOIQdA1HnwwQe1bt06rVixQu+8844KCwu1detW/8/Pnj2rxx57TJ9++qmWL1+ur7/+2h9k0tPTtWzZMknSrl27VFJSovz8fEnV4WnWrFnavHmz1qxZo7i4ON12223yeDwRf40Awo8NOgFEldOnTyslJUV///vfNWnSJEnS8ePH5XK5dN999ykvL6/OfTZv3qwrrrhCp06dUocOHVRYWKisrCydOHFCnTt3bvC5jh07ptTUVG3btk2DBg0K22sCYA8qOQCiyldffaWqqiqNHDnSf11ycrL69+/v/37Lli0aN26cevXqpaSkJP34xz+WJO3bt6/Rx/7yyy81ZcoU9enTRx07dlRGRoap+wFonQg5AFqViooK3XDDDerYsaNefvllbdq0SW+88YYkqaqqqtH7jhs3TsePH9ef//xnbdy4URs3bjR1PwCtEyEHQFTp27ev2rZt6w8gknTixAl98cUXkqSdO3eqtLRU8+fPV2ZmpgYMGOCfdOyTkJAgSXK73f7rSktLtWvXLv3mN7/RNddco4EDB+rEiRMReEUA7ELIARBVOnTooHvuuUcPPvig3n33XW3fvl3Tpk1TXFz121WvXr2UkJCgp556Snv27NHKlSv12GOP1XqM3r17yzAMvfnmmzp69KhOnz6tLl26KCUlRYsWLdLu3bv17rvvatasWXa8RAARQsgBEHUWLFigzMxMjRs3Ttdee61Gjx6tYcOGSZJSU1O1ePFi/eMf/9Cll16q+fPna+HChbXu37NnT82bN0+zZ89Wt27dNGPGDMXFxenVV1/Vli1bNGjQIM2cOVMLFiyw4+UBiBDOrgIAAI5EJQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADgSIQcAADjS/wcgkXXwtYvdKgAAAABJRU5ErkJggg==",
      "text/plain": [
       "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x3249dae10>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "using ScikitLearn\n",
    "\n",
    "# Import the necessary modules and libraries\n",
    "@sk_import tree: DecisionTreeRegressor\n",
    "using PyPlot\n",
    "\n",
    "# Create a random dataset\n",
    "srand(42)\n",
    "X = sort(5 * rand(80))\n",
    "XX = reshape(X, 80, 1)\n",
    "y = sin.(X)  # for 0.5/0.6 compat. Use sin.(X)\n",
    "y[1:5:end] += 3 * (0.5 - rand(16))\n",
    "\n",
    "# Fit regression model\n",
    "regr_1 = DecisionTreeRegressor(max_depth=2)\n",
    "regr_2 = DecisionTreeRegressor(max_depth=5)\n",
    "fit!(regr_1, XX, y)\n",
    "fit!(regr_2, XX, y)\n",
    "\n",
    "# Predict\n",
    "X_test = 0:0.01:5.0\n",
    "y_1 = predict(regr_1, reshape(X_test, length(X_test), 1))\n",
    "y_2 = predict(regr_2, reshape(X_test, length(X_test), 1))\n",
    "\n",
    "# Plot the results\n",
    "scatter(X, y, c=\"k\", label=\"data\")\n",
    "plot(X_test, y_1, c=\"g\", label=\"max_depth=2\", linewidth=2)\n",
    "plot(X_test, y_2, c=\"r\", label=\"max_depth=5\", linewidth=2)\n",
    "xlabel(\"data\")\n",
    "ylabel(\"target\")\n",
    "title(\"Decision Tree Regression\")\n",
    "legend()\n",
    "show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 0.6.0-pre.alpha",
   "language": "julia",
   "name": "julia-0.6"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "0.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
